// JavaScript Document
//PREPAR DIALOGOS
$(function()
{
	$("#atencion").dialog
	({
 		autoOpen:false,
		bgiframe:true,
		modal:true,
		buttons:
		{
			Aceptar:function()
			{
				$(this).dialog('close');
			}
		}
	});
	$("#confirmacion").dialog
	({
 		autoOpen:false,
		bgiframe:true,
		modal:true,
		buttons:
		{
			No:function()
			{
				$(this).dialog('close');
			},
			Si:function()
			{
				EjecutarAccion();
				$(this).dialog('close');
			}
		}
	});
	$("#procesando").dialog
	({
 		autoOpen:false,
		bgiframe:true,
		modal:true
	});
	$("#registros").dialog
	({
 		autoOpen:false,
		bgiframe:true,
		modal:true,
		width:450,
		height:300,
		buttons:
		{
			Cerrar:function()
			{
				$(this).dialog('close');
			}
		}
	});
});

//VARAIBLES GLOBALES
var accion;

function CrearXHRObject()
{
	var ajax;
	//OTROS NAVEGADORES
	if (window.XMLHttpRequest)
		ajax = new XMLHttpRequest();
	//INTERNET EXPLORER
	else
	if (window.ActiveXObject)
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	else
	{
		document.getElementById('atencion').innerHTML = "<p>"+
		"<span class=\"ui-icon ui-icon-circle-close\" style=\"float:left; margin:0 7px 50px 0;\"></span>"+
		"<b>Su navegador de Internet no soporta XMLHTTP Request, el sistema no funcionar&aacute; correctamente.</b></p>";
		$("#atencion").dialog('open');
	}
	return ajax;
}

function NumerosAleatorios()
{
	//GENERACION DE NUMEROS ALEATORIOS PARA CORREGIR CACHE EN INTERNET EXPLORER
	var numero1 = Math.floor(Math.random()*11);
	var numero2 = Math.floor(Math.random()*11);
	var numero3 = Math.floor(Math.random()*11);
	var numero4 = Math.floor(Math.random()*11);
	var numero5 = Math.floor(Math.random()*11);
	var aleatorio = numero1+""+numero2+""+numero3+""+numero4+""+numero5;
	return aleatorio;
}

function EjecutarAccion()
{
	if (accion == "limpiar_formulario")
	{
		document.getElementById('form1').reset();
		document.getElementById('formulario').innerHTML = "";
	}
	if (accion == "guardar_formulario")
		document.getElementById('form1').submit();
	if (accion == "conexion_inactiva")
	{
		$("#procesando").dialog('close');
		document.getElementById('atencion').innerHTML = "<p>"+
		"<span class=\"ui-icon ui-icon-circle-close\" style=\"float:left; margin:0 7px 50px 0;\"></span>"+
		"<b>La sesi&oacute;n ha finalizado, no se pueden guardar los datos.</b></p>";
		$("#atencion").dialog('open');
	}
	if (accion == "cancelar")
	{
		var aleatorio = NumerosAleatorios();
		window.location = "/jde/Pagos/home/?random="+aleatorio;
	}
}

function CargarCompanias()
{
	document.getElementById('procesando').innerHTML = "Cargando... <img src=\"/jde/img/progreso.gif\" width=\"32\" height=\"32\" align=\"absmiddle\" />";
	$("#procesando").dialog('open');
	var ajax = CrearXHRObject();
	var aleatorio = NumerosAleatorios();
	ajax.open("GET","/jde/Pagos/Dialogos/Html/Companias?flag=ok&random="+aleatorio,true);
	ajax.send(null);
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status == 200)
			{
				document.getElementById('registros').innerHTML = ajax.responseText;
				$("#procesando").dialog('close');
				$("#registros").dialog({width:550,height:300});
				$("#registros").dialog('open');
			}
		}
	};
}

function SeleccionarCompania(descripcion,codigo)
{
	document.getElementById('compania').value = descripcion;
	document.getElementById('codigo_compania').value = codigo;
	$("#registros").dialog('close');
	document.getElementById('evaluacion').innerHTML = "";
	document.getElementById('compania').style.color = "black";
	document.getElementById('compania').style.backgroundColor = "#DFDFDF";
	CargarFormulario();
}

function CargarFormulario()
{
	document.getElementById('procesando').innerHTML = "Cargando... <img src=\"/jde/img/progreso.gif\" width=\"32\" height=\"32\" align=\"absmiddle\" />";
	$("#procesando").dialog('open');
	var ajax = CrearXHRObject();
	var aleatorio = NumerosAleatorios();
	var compania = document.getElementById('codigo_compania').value;
	ajax.open("GET","/jde/Pagos/Tags/Html/FormularioNotificacionProveedores?flag=ok&compania="+compania+"&random="+aleatorio,true);
	ajax.send(null);
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status == 200)
			{
				document.getElementById('formulario').innerHTML = ajax.responseText;
				$("#procesando").dialog('close');
			}
		}
	};
}

function Evaluar()
{
	var flag = true,flag1 = false;
	var compania = document.getElementById('compania');
	if (compania.value.length == 0)
	{
		compania.style.backgroundColor = "red";
		compania.style.color = "white";
		flag = false;
	}
	else
	{
		compania.style.backgroundColor = "#DFDFDF";
		compania.style.color = "black";
	}
	var formulario = document.getElementById('form1').elements;
	var form_length = document.getElementById('form1').elements.length;
	var proveedores = new Array();
	var x = 0;
	//OBTENER TODOS LOS ID DE LOS PROVEEDORES EN UN ARREGLO
	for (var i=0; i<form_length; ++i)
	{
		if (formulario[i].title == "Id proveedor")
		{
			proveedores[x] = formulario[i].value;
			x = x + 1;
		}
	}
	//ESTABLECER LA CANTIDAD DE PROVEEDORES A PROCESAR
	document.getElementById('cantidad_proveedores').value = proveedores.length;
	//RECORRER TODOS LOS PROVEEDORES Y VERIFICAR SI ESTAN MARCADOS Y TIENE EMAIL COMPLETO
	var proveedor,mail_proveedor,pago,checkbox;
	var cadena,indice;
	for (var j=0; j<proveedores.length; ++j)
	{
		flag1 = false;
		proveedor = proveedores[j];
		mail_proveedor = document.getElementById('mail'+proveedor);
		x = 0;
		//OBTENER LOS CHECKBOXES PARA EL PROVEEDOR
		checkbox = new Array();
		for (var k=0; k<form_length; ++k)
		{
			if (formulario[k].type == "checkbox")
			{
				cadena = formulario[k].id;
				cadena = cadena.substring(5,cadena.length);
				indice = cadena.indexOf('_');
				cadena = cadena.substring(0,indice);
				if (cadena == proveedor)
				{
					checkbox[x] = formulario[k];
					x = x + 1;
				}
			}
		}
		//RECORRER LOS CHECHBOXES PARA CADA PROVEEDOR
		for (var l=0; l<checkbox.length; ++l)
		{
			if (checkbox[l].checked == true)
				flag1 = true;
		}
		if ((flag1 == true)&&(mail_proveedor.value.length == 0))
		{
			mail_proveedor.style.backgroundColor = "red";
			mail_proveedor.style.color = "white";
			flag = false;
		}
		else
		{
			mail_proveedor.style.backgroundColor = "white";
			mail_proveedor.style.color = "blue";
		}
	}
	if ((flag == false)&&(flag1 == false))
		document.getElementById('evaluacion').innerHTML = "<img src=\"/jde/img/alerta.png\" width=\"24\" height=\"24\" align=\"absmiddle\" />"+
		"&nbsp;<b>ATENCI&Oacute;N: Complete los campos indicados en color rojo.</b>";
	if (flag == true)
	{
		document.getElementById('evaluacion').innerHTML = "";
		Guardar();
	}
}

function Guardar()
{
	document.getElementById('procesando').innerHTML = "Procesando... <img src=\"/jde/img/progreso.gif\" width=\"32\" height=\"32\" align=\"absmiddle\" />";
	$("#procesando").dialog('open');
	ComprobarConexion();
}

function LimpiarFormulario()
{
	accion = "limpiar_formulario";
	document.getElementById('confirmacion').innerHTML = "<p>"+
	"<span class=\"ui-icon ui-icon-alert\" style=\"float:left; margin:0 7px 50px 0;\"></span>"+
	"Esta acci&oacute;n limpiar&aacute; todos los campos del formulario actual<br/><br/>"+
	"<b>&iquest;Esta seguro?</b></p>";
	$("#confirmacion").dialog('open');
}

function ComprobarConexion()
{
	document.getElementById('procesando').innerHTML = "Procesando... <img src=\"/jde/img/progreso.gif\" width=\"32\" height=\"32\" align=\"absmiddle\" />";
	$("#procesando").dialog('open');
	var ajax = CrearXHRObject();
	var aleatorio = NumerosAleatorios();
	ajax.open("GET","/jde/Pagos/Herramientas/Generales/ComprobarConexion?random="+aleatorio,true);
	ajax.send(null);
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status == 200)
			{
				var resp = ajax.responseText;
				//VARIABLES
				var valido_;
				var valido;
				var activa_;
				var activa;
				//OTROS NAVEGADORES
				try
				{
					var parser = new DOMParser();
					var dom = parser.parseFromString(resp,"text/xml");
					valido_ = dom.getElementsByTagName("valido");
					valido = valido_[0].childNodes[0].nodeValue;
					activa_ = dom.getElementsByTagName("activa");
					activa = activa_[0].childNodes[0].nodeValue;
				}
				//INTERNET EXPLORER
				catch (error)
				{
					var xml = new ActiveXObject("Microsoft.XMLDOM");
					xml.async = "false";
					xml.loadXML(resp);
					valido_ = xml.getElementsByTagName("valido");
					valido = valido_[0].firstChild.data;
					activa_ = xml.getElementsByTagName("activa");
					activa = activa_[0].firstChild.data;
				}
				//RESULTADO XML
				if ((valido == "Si")&&(activa == "Si"))
					accion = "guardar_formulario";
				if ((valido == "No")&&(activa == "No"))
					accion = "conexion_inactiva";
				EjecutarAccion();
			}
		}
	};
}

function Cancelar()
{
	accion = "cancelar";
	document.getElementById('confirmacion').innerHTML = "<p>"+
	"<span class=\"ui-icon ui-icon-alert\" style=\"float:left; margin:0 7px 50px 0;\"></span>"+
	"&iquest;Seguro desea salir de este formulario?</p>";
	$("#confirmacion").dialog('open');
}

function ToolTip(elemento)
{
	var texto = elemento.value;
	if (texto.length == 0)
		elemento.title = "Sin datos";
	else
		elemento.title = texto;
}